#ifndef FUNCTIONDEF_H
#define FUNCTIONDEF_H
#include <string>
#include <vector>
namespace dyngen {
typedef std::vector<std::string> StringVec;
class FunctionDef {
public:
	FunctionDef(const std::string& name, const std::string& returnType, const StringVec& paramVec);
	const std::string& name() const {
		return m_name;
	}
	const std::string& returnType() const {
		return m_returnType;
	}
	const StringVec& paramVec() const {
		return m_paramVec;
	}
	std::string functionPtrType() const;
private:
	std::string m_name;
	std::string m_returnType;
	StringVec m_paramVec;
};
typedef std::vector<FunctionDef> FunctionDefVec;

std::string formatParamVec(const StringVec& v);
}
#endif // FUNCTIONDEF_H
